[38;2;117;113;94m/* array sorting alogorithm */[0m
[3;38;2;166;226;46mint[0m[38;2;248;248;242m [0m[38;2;166;226;46mpartition[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m low[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m high) {[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (list [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;190;132;255mnull[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;249;38;114m|[0m[38;2;248;248;242m list[0m[38;2;248;248;242m.[0m[38;2;248;248;242mlength [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m) [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m pivot [0m[38;2;249;38;114m=[0m[38;2;248;248;242m list[high][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m low [0m[38;2;249;38;114m-[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m  [0m[3;38;2;102;217;239mvoid[0m[38;2;248;248;242m [0m[38;2;166;226;46mswap[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m i[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m j) {[0m
[38;2;248;248;242m    [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m temp [0m[38;2;249;38;114m=[0m[38;2;248;248;242m list[i][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    list[i] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m list[j][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    list[j] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m temp[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m

[38;2;248;248;242m  [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m ([0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m j [0m[38;2;249;38;114m=[0m[38;2;248;248;242m low[0m[38;2;248;248;242m;[0m[38;2;248;248;242m j [0m[38;2;249;38;114m<[0m[38;2;248;248;242m high[0m[38;2;248;248;242m;[0m[38;2;248;248;242m j[0m[38;2;249;38;114m++[0m[38;2;248;248;242m) {[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (list[j] [0m[38;2;249;38;114m<=[0m[38;2;248;248;242m pivot) {[0m
[38;2;248;248;242m      i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m      [0m[38;2;166;226;46mswap[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m i[0m[38;2;248;248;242m,[0m[38;2;248;248;242m j)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    }[0m
[38;2;248;248;242m    [0m[38;2;166;226;46mswap[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m i [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m high)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m i [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m
[38;2;248;248;242m}[0m

[3;38;2;102;217;239mvoid[0m[38;2;248;248;242m [0m[38;2;166;226;46mquickSort[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m low[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m high) {[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (low [0m[38;2;249;38;114m<[0m[38;2;248;248;242m high) {[0m
[38;2;248;248;242m    [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m pi [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mpartition[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m low[0m[38;2;248;248;242m,[0m[38;2;248;248;242m high)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    [0m[38;2;166;226;46mquickSort[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m low[0m[38;2;248;248;242m,[0m[38;2;248;248;242m pi [0m[38;2;249;38;114m-[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    [0m[38;2;166;226;46mquickSort[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m pi [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m high)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m
[38;2;248;248;242m}[0m

[3;38;2;102;217;239mvoid[0m[38;2;248;248;242m [0m[38;2;166;226;46mmerge[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m leftIndex[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m middleIndex[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m rightIndex) {[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m leftSize [0m[38;2;249;38;114m=[0m[38;2;248;248;242m middleIndex [0m[38;2;249;38;114m-[0m[38;2;248;248;242m leftIndex [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m rightSize [0m[38;2;249;38;114m=[0m[38;2;248;248;242m rightIndex [0m[38;2;249;38;114m-[0m[38;2;248;248;242m middleIndex[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m  [0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m leftList [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mnew[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m(leftSize)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m rightList [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mnew[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m(rightSize)[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m  [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m ([0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m leftSize[0m[38;2;248;248;242m;[0m[38;2;248;248;242m i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m) leftList[i] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m list[leftIndex [0m[38;2;249;38;114m+[0m[38;2;248;248;242m i][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m ([0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m j [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m[38;2;248;248;242m j [0m[38;2;249;38;114m<[0m[38;2;248;248;242m rightSize[0m[38;2;248;248;242m;[0m[38;2;248;248;242m j[0m[38;2;249;38;114m++[0m[38;2;248;248;242m) rightList[j] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m list[middleIndex [0m[38;2;249;38;114m+[0m[38;2;248;248;242m j [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m][0m[38;2;248;248;242m;[0m

[38;2;248;248;242m  [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m i [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m,[0m[38;2;248;248;242m j [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m k [0m[38;2;249;38;114m=[0m[38;2;248;248;242m leftIndex[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m  [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m (i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m leftSize [0m[38;2;249;38;114m&[0m[38;2;249;38;114m&[0m[38;2;248;248;242m j [0m[38;2;249;38;114m<[0m[38;2;248;248;242m rightSize) {[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (leftList[i] [0m[38;2;249;38;114m<=[0m[38;2;248;248;242m rightList[j]) {[0m
[38;2;248;248;242m      list[k] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m leftList[i][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m      i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    } [0m[38;2;249;38;114melse[0m[38;2;248;248;242m {[0m
[38;2;248;248;242m      list[k] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m rightList[j][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m      j[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    }[0m
[38;2;248;248;242m    k[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m

[38;2;248;248;242m  [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m (i [0m[38;2;249;38;114m<[0m[38;2;248;248;242m leftSize) {[0m
[38;2;248;248;242m    list[k] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m leftList[i][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    i[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    k[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m

[38;2;248;248;242m  [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m (j [0m[38;2;249;38;114m<[0m[38;2;248;248;242m rightSize) {[0m
[38;2;248;248;242m    list[k] [0m[38;2;249;38;114m=[0m[38;2;248;248;242m rightList[j][0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    j[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    k[0m[38;2;249;38;114m++[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m
[38;2;248;248;242m}[0m

[3;38;2;102;217;239mvoid[0m[38;2;248;248;242m [0m[38;2;166;226;46mmergeSort[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mList[0m[38;2;248;248;242m list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m leftIndex[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m rightIndex) {[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (leftIndex [0m[38;2;249;38;114m<[0m[38;2;248;248;242m rightIndex) {[0m
[38;2;248;248;242m    [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m middleIndex [0m[38;2;249;38;114m=[0m[38;2;248;248;242m (rightIndex [0m[38;2;249;38;114m+[0m[38;2;248;248;242m leftIndex) [0m[38;2;249;38;114m~[0m[38;2;249;38;114m/[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m    [0m[38;2;166;226;46mmergeSort[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m leftIndex[0m[38;2;248;248;242m,[0m[38;2;248;248;242m middleIndex)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    [0m[38;2;166;226;46mmergeSort[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m middleIndex [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m rightIndex)[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m    [0m[38;2;166;226;46mmerge[0m[38;2;248;248;242m(list[0m[38;2;248;248;242m,[0m[38;2;248;248;242m leftIndex[0m[38;2;248;248;242m,[0m[38;2;248;248;242m middleIndex[0m[38;2;248;248;242m,[0m[38;2;248;248;242m rightIndex)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m
[38;2;248;248;242m}[0m

[38;2;117;113;94m/* variables */[0m
[3;38;2;102;217;239mvar[0m[38;2;248;248;242m name [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m'Voyager I'[0m[38;2;248;248;242m;[0m
[3;38;2;102;217;239mvar[0m[38;2;248;248;242m year [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m1977[0m[38;2;248;248;242m;[0m
[3;38;2;102;217;239mvar[0m[38;2;248;248;242m antennaDiameter [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m3.7[0m[38;2;248;248;242m;[0m
[3;38;2;102;217;239mvar[0m[38;2;248;248;242m flybyObjects [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [[0m[38;2;230;219;116m'Jupiter'[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m'Saturn'[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m'Uranus'[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m'Neptune'[0m[38;2;248;248;242m][0m[38;2;248;248;242m;[0m
[3;38;2;102;217;239mvar[0m[38;2;248;248;242m image [0m[38;2;249;38;114m=[0m[38;2;248;248;242m {[0m
[38;2;248;248;242m  [0m[38;2;230;219;116m'tags'[0m[38;2;249;38;114m:[0m[38;2;248;248;242m [[0m[38;2;230;219;116m'saturn'[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m
[38;2;248;248;242m  [0m[38;2;230;219;116m'url'[0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[38;2;230;219;116m'//path/to/saturn.jpg'[0m
[38;2;248;248;242m}[0m[38;2;248;248;242m;[0m

[38;2;117;113;94m/*classes */[0m
[38;2;249;38;114mclass[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mSpacecraft[0m[38;2;248;248;242m {[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m name[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mDateTime[0m[38;2;248;248;242m launchDate[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mSpacecraft[0m[38;2;248;248;242m([0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mname[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m.[0m[38;2;248;248;242mlaunchDate) {}[0m

[38;2;248;248;242m  [0m[38;2;117;113;94m// Named constructor that forwards to the default one.[0m
[38;2;248;248;242m  [0m[3;38;2;166;226;46mSpacecraft[0m[38;2;248;248;242m.[0m[38;2;166;226;46munlaunched[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m name) [0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[38;2;255;255;255mthis[0m[38;2;248;248;242m(name[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mnull[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m  [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m [0m[38;2;249;38;114mget[0m[38;2;248;248;242m [0m[38;2;166;226;46mlaunchYear[0m[38;2;248;248;242m => launchDate[0m[38;2;249;38;114m?[0m[38;2;248;248;242m.[0m[38;2;248;248;242myear[0m[38;2;248;248;242m;[0m

[38;2;248;248;242m  [0m[3;38;2;102;217;239mvoid[0m[38;2;248;248;242m [0m[38;2;166;226;46mdescribe[0m[38;2;248;248;242m() {[0m
[38;2;248;248;242m    [0m[38;2;166;226;46mprint[0m[38;2;248;248;242m([0m[38;2;230;219;116m'Spacecraft: $[0m[3;38;2;253;151;31mname[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mif[0m[38;2;248;248;242m (launchDate [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;190;132;255mnull[0m[38;2;248;248;242m) {[0m
[38;2;248;248;242m      [0m[3;38;2;166;226;46mint[0m[38;2;248;248;242m years [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mDateTime[0m[38;2;248;248;242m.[0m[38;2;166;226;46mnow[0m[38;2;248;248;242m()[0m[38;2;248;248;242m.[0m[38;2;166;226;46mdifference[0m[38;2;248;248;242m(launchDate)[0m[38;2;248;248;242m.[0m[38;2;248;248;242minDays [0m[38;2;249;38;114m~[0m[38;2;249;38;114m/[0m[38;2;248;248;242m [0m[38;2;190;132;255m365[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m      [0m[38;2;166;226;46mprint[0m[38;2;248;248;242m([0m[38;2;230;219;116m'Launched: $[0m[3;38;2;253;151;31mlaunchYear[0m[38;2;230;219;116m ($[0m[3;38;2;253;151;31myears[0m[38;2;230;219;116m years ago)'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    } [0m[38;2;249;38;114melse[0m[38;2;248;248;242m {[0m
[38;2;248;248;242m      [0m[38;2;166;226;46mprint[0m[38;2;248;248;242m([0m[38;2;230;219;116m'Unlaunched'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    }[0m
[38;2;248;248;242m  }[0m
[38;2;248;248;242m}[0m

[38;2;117;113;94m/* Mixins */[0m
[38;2;249;38;114mclass[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mPilotedCraft[0m[38;2;248;248;242m [0m[38;2;249;38;114mextends[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mSpacecraft[0m[38;2;248;248;242m [0m[38;2;249;38;114mwith[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mPiloted[0m[38;2;248;248;242m {[0m
[38;2;248;248;242m  [0m[38;2;117;113;94m// ···[0m
[38;2;248;248;242m}[0m

[38;2;117;113;94m/* Interfaces and abstract classes */[0m
[38;2;249;38;114mclass[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mMockSpaceship[0m[38;2;248;248;242m [0m[38;2;249;38;114mimplements[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mSpacecraft[0m[38;2;248;248;242m {[0m
[38;2;248;248;242m  [0m[38;2;117;113;94m// ···[0m
[38;2;248;248;242m}[0m

[38;2;117;113;94m/* async */[0m
[3;38;2;166;226;46mFuture[0m[38;2;249;38;114m<[0m[3;38;2;102;217;239mvoid[0m[38;2;249;38;114m>[0m[38;2;248;248;242m [0m[38;2;166;226;46mprintWithDelay[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m message) {[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mFuture[0m[38;2;248;248;242m.[0m[38;2;166;226;46mdelayed[0m[38;2;248;248;242m([0m[38;2;249;38;114mconst[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mDuration[0m[38;2;248;248;242m(seconds[0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m))[0m[38;2;248;248;242m.[0m[38;2;166;226;46mthen[0m[38;2;248;248;242m((_) {[0m
[38;2;248;248;242m    [0m[38;2;166;226;46mprint[0m[38;2;248;248;242m(message)[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  })[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m}[0m

[3;38;2;166;226;46mStream[0m[38;2;249;38;114m<[0m[3;38;2;166;226;46mString[0m[38;2;249;38;114m>[0m[38;2;248;248;242m [0m[38;2;166;226;46mreport[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mSpacecraft[0m[38;2;248;248;242m craft[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mIterable[0m[38;2;249;38;114m<[0m[3;38;2;166;226;46mString[0m[38;2;249;38;114m>[0m[38;2;248;248;242m objects) [0m[38;2;249;38;114masync[0m[38;2;249;38;114m*[0m[38;2;248;248;242m {[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m ([0m[3;38;2;102;217;239mvar[0m[38;2;248;248;242m object [0m[38;2;249;38;114min[0m[38;2;248;248;242m objects) {[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mawait[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mFuture[0m[38;2;248;248;242m.[0m[38;2;166;226;46mdelayed[0m[38;2;248;248;242m([0m[38;2;249;38;114mconst[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mDuration[0m[38;2;248;248;242m(seconds[0m[38;2;249;38;114m:[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m))[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m    [0m[38;2;249;38;114myield[0m[38;2;248;248;242m [0m[38;2;230;219;116m'${[0m[3;38;2;253;151;31mcraft.name[0m[38;2;230;219;116m} flies by $[0m[3;38;2;253;151;31mobject[0m[38;2;230;219;116m'[0m[38;2;248;248;242m;[0m
[38;2;248;248;242m  }[0m
[38;2;248;248;242m}[0m
